<script>
    /*
    pormise创建
       第四种方案 pormise.all/any/race 
       let p = Promise.all([pormise]);
       [pormise]包含多个pormise实例的集合
       all方法是检测每一个实例的状态
         只要有一个实例是失败则p是失败的，值是当前这一项失败的原因
         所有现都成功，则p状态为成功，他的值是数组集合，按照传递进来的顺序，依次存储每一项成功的结果
         如果集合中不是pormise实例，则内部会把其状态变为成功，值为本身的实例

        any方法有有一项成功就成功，值为成功这一项，所有项失败才失败

        .race 谁快听谁的，无论成功还是失败
    */
   let p1 = new Promise((reslove,reject) => {
    setTimeout(() => {
        reslove(1);
    },2000);
   });
   let p2 = new Promise((reslove,reject) => {
    setTimeout(() => {
        reslove(2);
    },2000);
   });
   let p3 =Promise.resolve(3)
   let p4 = 4 //默认转换为pormise实例
   
   let p = Promise.all([p1,p2,p3,p4]);
   p.then(a =>{console.log(a);}).catch(
    reason => {
        console.log("失败",reason);
    }
   )
   
</script>